iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
Security

前端小廢物誤入 Hackthebox Module系列 第 4

Nmap - 網路檢測的魔法 (下卷)

  • 分享至 

  • xImage
  •  

好用指令

Nmap Scripting Engine - NSE

NSE 是什麼?

它是 Nmap 一項強大功能,允許用戶通過 Lua 程語言編寫和使用腳本,從而擴展 Nmap 的功能。NSE 不僅僅局限於端口掃描,它能與各種服務進行互動,檢測漏洞,並收集網絡設備的詳細資訊。

NSE Script 類別 & 描述

類別 描述
Auth 這些腳本用於識別或測試服務的身份驗證憑據。
Broadcast 通過發送廣播訊息來發現網絡中的主機,可用於高效的主機發現。
Brute 透過使用各種憑據嘗試對服務進行暴力破解登入。
Default 一組常用且安全的腳本,在使用 Nmap-sC 選項時會自動執行。
Discovery 這些腳本用於收集目標系統上可訪問服務的資訊,提供對目標的廣泛視圖。
Dos 檢測可能導致拒絕服務(DoS)攻擊的漏洞,因可能會對服務造成損害,需謹慎使用。
Exploit 這些腳本嘗試利用已知的服務漏洞來對目標進行攻擊。
External 使用外部資源或服務進行額外的資料收集,如 DNS 查詢或 WHOIS 資訊查詢。
Fuzzer 透過發送異常或格式錯誤的資料包來測試服務的弱點,幫助識別如資料包處理錯誤等問題。
Intrusive 這些腳本較具攻擊性,可能會對目標系統產生負面影響,通常涉及漏洞利用或高資源消耗。
Malware 檢查目標系統是否受到已知惡意軟體的感染。
Safe 非侵入性的防禦性腳本,不會對目標系統造成破壞或影響。
Version 這些腳本用於擴展服務偵測,幫助識別目標服務的具體版本。
Vuln 用於識別目標系統中的特定安全漏洞。

查找 script

想要查找某 script 類別裡面有哪些 script,可以下以下的指令~

nmap --script-help <script-category>

discovery 為例,如果說讀者想要找尋 discovery 類別的 script,則可以這樣下:

nmap --script-help discovery

結果如下:
https://ithelp.ithome.com.tw/upload/images/20240918/20107197iDIHMZMKLA.png

這邊的 acarsd-info 就是其中一個屬於 discovery 類別的指令~

假設你發現有太多資訊了,只想要查找 "c" 開頭的 script,也可以這樣找:

nmap --script-help "c* and discovery"

就可以看到滿多 "c" 開頭的 script

https://ithelp.ithome.com.tw/upload/images/20240918/20107197G440V4zXje.png

如何使用 script?

指定 script

如果你想要針對某個 target 執行某 script,讀者可以下以下指令:

nmap --script <script-name> <target>

script-name 的部分就是你查詢到想要使用的 script 名稱 ~

想要指定某個類別的話,就把 script-name 換成該類別就好了喔!

採用預設的 script

nmap -sC <target>

如果是想使用 default 類別的 script,加上 -sC 就可以惹!


筆者 say say 念:

看完好用的 NSE 後,咱們來看看進階的部分吧!


Nmap & performace

掃描的效率為何重要?


小故事時間:

情境題:

假設有一個壞蛋,他想要拿雷射筆對付貓咪守衛 XD
當他拿雷射筆在貓咪守衛面前掃射,想看看會不會吸引貓咪守衛的注意><
https://ithelp.ithome.com.tw/upload/images/20240918/20107197oaw0HdenDM.png

請問:
是快速掃射一次容易吸引貓咪守衛的注意?
還是快速掃射多次?
應該... 是快速掃射多次吧! 畢竟出現的頻率比較高@@


其實,換成網路掃描也是一樣的,這邊的守衛就是目標主機的防火牆 (或其他防衛系統)~

假設你高頻率掃描多次,就很有可能被盯上!! (怕。) /images/emoticon/emoticon16.gif

以上的情境就有點類似在幹壞事 (黑箱測試) 的時候,希望靜悄悄地幹壞事,但是要幹地很精準 (???)

所以啦! 這時候我們就需要提升效率! 提升掃描效率好處多多,讓我們一起來看看吧 ><

提升掃描效率的好處

節省時間

當掃描大規模網路或多個目標時,默認的 Nmap 設定可能花費大量時間。透過優化掃描參數,可以顯著縮短掃描所需的時間。

應對網路環境

在網路頻寬有限或延遲較高的環境中,調整 Nmap 參數(如封包速率或超時)可以減少掃描對網路資源的佔用,避免對網路性能的負面影響。


筆者 say say 念:

換成白話文來說,就是這機器爛 XD 它無法消化你丟給它的東西。
你丟越多給它,反而有更高機率讓它無法消化,浪費你更多時間 @@


應對安全措施

白箱測試或安全系統允許的情況下,加快掃描速度有助於更高效地進行漏洞檢測。

反之,在黑箱測試中,減慢掃描速度可以避免觸發安全系統的封鎖。

資源節省

更快的掃描能節省計算和網路資源,尤其是在資源有限的情況下,這樣可以更高效地分配掃描任務!

如何優化?

加快掃描時間 - 減少 Timeout 設定

假設我們要搜尋 10.129.2.0 子網中所有的 IP 位置:

sudo nmap 10.129.2.0/24 -F --initial-rtt-timeout 50ms --max-rtt-timeout 100ms

指令說明

-F:
掃描前 100 個常見的端口,這樣可以提高掃描速度而不浪費時間掃描所有端口。

--initial-rtt-timeout 50ms:
設定初始 RTT 超時為 50 毫秒。Nmap 在發送封包後,會等待此時間段內的回應,過期後即認為該端口沒有回應,並進行進一步操作。

--max-rtt-timeout 100ms:
設定最大 RTT 超時為 100 毫秒。如果初始超時後沒有回應,Nmap 會進一步等待最多 100 毫秒,之後便會認為該端口無法訪問。

優缺點

減少 RTT 超時可以加快掃描速度,但可能會漏掉回應較慢的主機或端口。

減少重試次數

sudo nmap 10.129.2.0/24 -F --max-retries 0

承繼之前的目標進行掃描,多設定一個重試次數 --max-retries

優缺點

減少重試次數可以顯著加快掃描速度,尤其是在有大量端口或目標的情況下,但可能會忽略那些由於暫時原因未回應的端口。


筆者 say say 念:

白箱滲透測試中,當我們被安全系統列入白名單後,可以專注於檢查系統漏洞,而不是測試防護措施。
通過設定最小發包速率(--min-rate <number>),可以加快 Nmap 的掃描速度,讓 Nmap 同時發送指定數量的封包並保持該速率。


提高封包發送速率 - 白箱

sudo nmap 10.129.2.0/24 -F --min-rate 300

指令說明

--min-rate 300:
設定每秒最少發送 300 個封包。Nmap 會嘗試保持這個速率來進行掃描。

優缺點

提高封包發送速率可顯著縮短掃描時間,尤其在網路頻寬充裕的環境下。
然而,過高的封包速率可能會對網路產生負擔,並導致某些系統無法正常回應 ><

在結果保存中提升效能

sudo nmap 10.129.2.0/24 -F -oN resultfile --min-rate 300 --max-retries 0

加上 -oN <filename> 可以指定將最後搜尋出來的內容保存到該文件中~


筆者爆肝宣言:

Nmap 的指令多多,包山包海 XD 我有稍微介紹了一些重要的~
但防火牆繞過的部分還是得下次再講XD 要不然真的太多啦~~~


今日心得

真的是超爆肝ㄉQQ 最近事情有夠多 TAT
但保持反思的能力還是很重要的~
繼續加油!

參考資源

https://academy.hackthebox.com/

https://nmap.org/book/man-performance.html


上一篇
Nmap - 網路檢測的魔法 (中卷)
下一篇
Nmap 與繞過防火牆規則和 IDS/IPS
系列文
前端小廢物誤入 Hackthebox Module31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言